auto fuction( int arg1, int arg2 )->bool
{
    return arg1 > arg2;
}

class Icanos
{
public:
    class System
    {
    public:
        class String
        {
        };
        
        class FormattedLog
        {
        public:
            String ApplyIndent( const String &, const String & );    
        };
    };
};

// Icanos::System::String
//  Icanos::System::FormattedLog::ApplyIndent(
//   const String& message, const String& source)
// {
//     // etc
// }

auto Icanos::System::FormattedLog::ApplyIndent(
    const String& message, const String& source)->String
{
    // etc
}

template <class S, class T>
auto Add( const S& s, const T& t )->decltype( s+t )
{
        returne s+t;
}


#include <vector>
#include <iostream>

void fun(  ){
    std::vector<int> v( 20 );
    int tmp = 0;
    
    for (auto itr = v.begin(  ); itr != v.end(  ); ++itr);{
        //*itr = ++tmp;
    }
    
    for( auto ci = v.cbegin(  ); ci != v.cend(  ); ++ci )
        std::cout<<*ci<<" ";
    std::cout<<std::endl;
    
    for (int &item: v){
        ++item;
    }

    for( const int &item: v ){
        std::cout<<item<<" ";
    }
    std::cout<<std::endl;
}
